﻿<navfx:Page x:Class="NavFx.NavFxDemoVB.Home"
			xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
			xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
			xmlns:navfx="clr-namespace:NavFx;assembly=NavFx"
			HorizontalAlignment="Stretch"
			VerticalAlignment="Stretch">
	<navfx:Page.Resources>
		<Style x:Key="headingText"
			   TargetType="TextBlock">
			<Setter Property="Margin"
					Value="10,5,10,5" />
			<Setter Property="FontSize"
					Value="15" />
			<Setter Property="FontWeight"
					Value="Bold" />
		</Style>
		<Style x:Key="paragraphText"
			   TargetType="TextBlock">
			<Setter Property="Margin"
					Value="5" />
			<Setter Property="FontSize"
					Value="12" />
			<Setter Property="TextWrapping"
					Value="Wrap" />
		</Style>
	</navfx:Page.Resources>

	<!-- main layout grid-->
	<Grid x:Name="pageLayout"
		  HorizontalAlignment="Stretch"
		  VerticalAlignment="Stretch">

		<Grid.ColumnDefinitions>
			<ColumnDefinition />
		</Grid.ColumnDefinitions>


		<Grid.RowDefinitions>
			<RowDefinition Height="50" />
			<RowDefinition />
		</Grid.RowDefinitions>

		<TextBlock Grid.Column="0"
				   Grid.Row="0"
				   Style="{StaticResource headingText}"
				   Text="Welcome" />
			
			<Grid HorizontalAlignment="Stretch"
				  VerticalAlignment="top"
				  Grid.Column="0"
				  Grid.Row="1">
						
				<Grid.ColumnDefinitions>
					<ColumnDefinition />
				</Grid.ColumnDefinitions>
				
				<Grid.RowDefinitions>
					<RowDefinition />
					<RowDefinition />
					<RowDefinition />
					<RowDefinition />
					<RowDefinition />
					<RowDefinition />
				</Grid.RowDefinitions>
				
				<TextBlock Style="{StaticResource paragraphText}"
						   Grid.Column="0"
						   Grid.Row="0">
					Welcome to this demonstration of NavFx the Silverlight Navigation Framework.  This
					demonstration will show you the capabilities of NavFx and how you can use it to
					build simple or complex multi paged Silverlight applications.
				</TextBlock>		
				
				<TextBlock Style="{StaticResource paragraphText}"
						   Grid.Column="0"
						   Grid.Row="1">		
					On startup the only two pages bundled with the NavFxDemo.xap application package
					are loaded and displayed.  If you have the source code the files Shell.xaml and
					Home.xaml in the NavFxDemo project are the ones loaded.
				</TextBlock>
						
				<TextBlock Style="{StaticResource paragraphText}"
						   Grid.Column="0"
						   Grid.Row="2">		
					The demonstration screen is divided into several areas.  The obvious Header at
					the top of the screen. At the bottom is an Output pane where statements relating
					to NavFx will be posted as they are executed. On the left is a Navigation Pane
					containing a stack of buttons. Each button demonstrates a different feature or
					implemenation scenario supported by NavFx.  On the right is a Watch Pane that
					provides information about the current state of the main Navigator cache and
					currently registered pages.  Above is the Options panel allowing some
					control over actions take when you click on a button in the Navigation Pane.
				</TextBlock>
						
				<TextBlock Style="{StaticResource paragraphText}"
						   Grid.Column="0"
						   Grid.Row="3">			
					The Shell page provides the layout of the screen and the functionality in each of
					the panes.  It was created from the NavFxHostPage template and implements an
					instance of the HostPage class provided by NavFx.  It demonstrates the concept
					of a page that provides it's own content and functionality whilst acting as a host
					for other pages.  In many of the applications where NavFx is envisaged as being
					useful you would create a page that acts as the main control centre this is exactly
					what the HostPage is designed for.
				</TextBlock>
						
				<TextBlock Style="{StaticResource paragraphText}"
						   Grid.Column="0"
						   Grid.Row="4">			
					This area containing only text is currently filling	a Grid that will act as
					the content area where different pages will be loaded as you explore the
					demonstration.  At the moment the Home page is being displayed in this area. Home
					was created from the NavFxPage template and implements an instance of the Page class
					provided by NavFx.  It demontrates the concept of loading a pure content page, that
					is one with no purpose other than to display content.  The content could be simply
					text as this page is or it could be a complex animation or media.
				</TextBlock>
						
				<TextBlock Style="{StaticResource paragraphText}"
						   Grid.Column="0"
						   Grid.Row="5">			
					Notice in the Watch Pane that only Home is registered with Navigator.  Shell is not
					registered with NavFx because it is the main controller of the application and will
					always be visible.  It will never be navigated away from and therefore does not need
					to be registered for returning to.  If however you created an application that had
					multiple controlling pages you would need to register them all with Navigator so it
					can be used to return to these pages.
				</TextBlock>
						
			</Grid>
		
	</Grid>
</navfx:Page>
